package com.bestcem.xm.ticket.controller.param;

import com.bestcem.xm.ticket.controller.param.ticket.InsertTicketParam;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.List;

/**
 * @author liheng
 * @version v1.0
 * @date 2021/8/26 15:09
 */
@Data
public class FollowTicketParam {

    private String orgId;

    private String orgCode;

    private String userId;

    private String userName;

    /**
     * 处理模板id，2.3版本新增
     */
    @JsonProperty(value = "template_id")
    private String templateId;

    /**
     * 处理模板答案，2.3版本新增
     */
    @JsonProperty(value = "template_fields")
    private List<InsertTicketParam.TemplateField> templateFields;

    /**
     * 用户层级名称
     */
    private String regionName;
    /**
     * 默认字段的内容
     */
    private String content;

    /**
     * 自定义字段，（2.3之后已弃用）
     */
    private List<CustomFieldParam> customFields;

    /**
     * 字段1的内容 （2.3之后已弃用）
     */
    private String field1;
    /**
     * 字段2的内容 （2.3之后已弃用）
     */
    private String field2;

    /**
     * 字段3的内容 （2.3之后已弃用）
     */
    private String field3;

    /**
     * 是否完成,旧数据兼容，0-false，1-true
     * 2.3版本不做处理，fsm中用来控制跟进的后续审核步骤
     */
    private Integer isCompleted;

    /**
     * 工单id
     */
    private String ticketId;

    @Data
    public static class CustomFieldParam {
        /**
         * 处理记录模板对应field的name
         */
        private String field;

        /**
         * 下拉选项list
         */
        private List<OptionParam> options;

        /**
         * 是否必填
         */
        private Integer required;

        /**
         * 模板标题
         */
        private String text;

        /**
         * 模板问题类型
         */
        private String type;

        /**
         * 处理记录模板下拉选项类
         */
        @Data
        public static class OptionParam {
            /**
             * 处理记录模板字段下拉选项内容，如：是
             */
            private String text;

            /**
             * 处理记录模板字段下拉选项值：是对应1，否对应0
             */
            private Integer value;
        }
    }
}
